Eureka 是 Netflix 开源的 **服务发现组件**，用于在微服务架构中实现服务的注册与发现。以下是一个简单的 Eureka 示例，包括 **Eureka Server** 和 **Eureka Client** 的实现。

---

### **1. Eureka Server**
Eureka Server 是服务注册中心，其他微服务（Eureka Client）会向它注册自己的信息。

#### **1.1 添加依赖**
在 `pom.xml` 中添加 Spring Cloud Netflix Eureka Server 依赖：

```xml
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
```

#### **1.2 配置文件**
在 `application.yml` 中配置 Eureka Server：

```yaml
server:
  port: 8761 # Eureka Server 默认端口

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false # Eureka Server 不需要注册自己
    fetch-registry: false # Eureka Server 不需要从其他 Eureka Server 获取注册信息
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
```

#### **1.3 启动类**
在启动类上添加 `@EnableEurekaServer` 注解：

```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
```

#### **1.4 运行 Eureka Server**
启动应用后，访问 `http://localhost:8761`，可以看到 Eureka Server 的管理界面。

---

### **2. Eureka Client**
Eureka Client 是微服务，它会向 Eureka Server 注册自己。

#### **2.1 添加依赖**
在 `pom.xml` 中添加 Spring Cloud Netflix Eureka Client 依赖：

```xml
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
```

#### **2.2 配置文件**
在 `application.yml` 中配置 Eureka Client：

```yaml
server:
  port: 8081 # 微服务端口

spring:
  application:
    name: eureka-client-service # 微服务名称

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/ # Eureka Server 地址
```

#### **2.3 启动类**
在启动类上添加 `@EnableEurekaClient` 注解：

```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }
}
```

#### **2.4 添加一个简单的 REST 接口**
在 Eureka Client 中添加一个简单的 REST 接口：

```java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello from Eureka Client!";
    }
}
```

#### **2.5 运行 Eureka Client**
启动应用后，Eureka Client 会自动向 Eureka Server 注册自己。访问 `http://localhost:8761`，可以看到 `eureka-client-service` 已注册。

---

### **3. 测试**
1. 启动 Eureka Server。
2. 启动 Eureka Client。
3. 访问 `http://localhost:8761`，确认 `eureka-client-service` 已注册。
4. 访问 `http://localhost:8081/hello`，测试 Eureka Client 的接口。

---

### **4. 总结**
- **Eureka Server** 是服务注册中心，负责管理所有微服务的注册信息。
- **Eureka Client** 是微服务，会向 Eureka Server 注册自己，并从 Eureka Server 获取其他微服务的信息。
- 通过 Eureka，微服务之间可以实现动态的服务发现和调用。

你可以根据需要扩展此示例，例如：
- 实现多个 Eureka Server 的高可用。
- 使用 Feign 或 RestTemplate 实现服务调用。
- 结合 Spring Cloud Gateway 实现 API 网关。

Eureka 是微服务架构中常用的服务发现组件，适用于 Spring Cloud 生态。